import request from '@/utils/request'

const baseUrl = '/system'

/**
 * 分页条件查询角色列表
 * @param query 查询条件
 * @param current 当前页码
 * @param size 每页显示多少数据
 * @returns 
 */
export function getPageList(queryParams: SysRoleQuery, pageParams: PageParams) {
  return request({
    url: `${baseUrl}/roles`,
    method: 'get',
    params: { ...queryParams, ...pageParams },
  });
}

/**
 * 新增角色
 * @param data
 */
export function add(data: SysRoleType) {
  return request({
    url: `${baseUrl}/roles`,
    method: 'post',
    data: data,
  });
}

/**
 * 编辑角色
 * @param data
 */
export function update(data: SysRoleType) {
  return request({
    url: `${baseUrl}/roles`,
    method: 'put',
    data: data,
  });
}

/**
 * 删除角色
 * @param id 角色id
 */
export function deleteById(id: number) {
  return request({
    url: `${baseUrl}/roles/${id}`,
    method: 'delete',
  });
}

/**
 * 通过角色id查询此角色所拥有的权限菜单dis
 * @param roleId 角色id
 */
export function getMenuIdsByRoleId(roleId: number) {
  return request({
    url: `${baseUrl}/roles/${roleId}/permission`,
    method: 'get'
  });
}

/**
 * 保存分配的角色权限数据
 * @param roleId 角色id
 * @param menuIds 分配的菜单ids
 */
export function saveRoleMenu(roleId: number, menuIds: string[]) {
  return request({
    url: `${baseUrl}/roles/${roleId}/permission`,
    method: 'post',
    data: menuIds
  });
}

/**
 * 查询所有角色-用于分配用户角色下拉框
 */
export function getRoleList(pageParams: PageParams) {
  return request({
    url: `${baseUrl}/roles/list`,
    method: 'get',
    params: pageParams,
  });
}

/**
 * 查询所有角色权限下拉框
 */
export function getPermissionList(pageParams: PageParams) {
  return request({
    url: `/oauth/permissions/`,
    method: 'get',
    params: pageParams
  });
}
